package com.java.main.lambda;

import java.time.LocalTime;
import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.regex.Pattern;
import java.util.stream.Collectors;

/**
 * @author 顾志杰
 * @date 2021/5/14-13:30
 */
public class calculation {

    public static void main(String[] args) {
//        126.647013,45.757579
//        126.647794,45.757592
//        double bearing = bearing(45.757579,126.647013,45.757592,126.647794);
//        System.out.println(bearing);
//        System.out.println(LocalTime.now().getHour()+"-"+LocalTime.now().getMinute());
//        System.out.println(TimeZone.getDefault());

//        String code = "6222028150751399996";
//        String ifStr = "^([1-9]{1})(\\d{14}|\\d{18})$";
//        System.out.println(Pattern.matches(ifStr,code));

//        String str = "1,2,3,";
//        String[] split = str.split(",");
//        System.out.println(split.length);
//        List<TestDto> dtos = new ArrayList<>();
//        List<TestDto> dtos2 = new ArrayList<>();
//        for (int i = 0; i < 10000; i++) {
//            TestDto dto = new TestDto();
//            if(i >5000){
//                dto.setAge(18);
//                dto.setName("张三"+i);
//                dto.setSex("男");
//            }else{
//                dto.setAge(18);
//                dto.setName("王五"+i);
//                dto.setSex("女");
//            }
//            dtos.add(dto);
//        }
//        for (int i = 0; i < 10000; i++) {
//            TestDto dto = new TestDto();
//            if(i >5000){
//                dto.setAge(18);
//                dto.setName("张三"+i);
//                dto.setSex("男");
//            }else{
//                dto.setAge(18);
//                dto.setName("李四"+i);
//                dto.setSex("女");
//            }
//            dtos2.add(dto);
//        }
//        long begin = System.currentTimeMillis();
//        dtos.addAll(dtos2);
//        int size = dtos.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(
//                () -> new TreeSet<>(Comparator.comparing(TestDto::getName))), ArrayList::new)).size();
//        System.out.println(size);
//        long end = System.currentTimeMillis();
//        long takeTime = end - begin;
//        System.out.println(takeTime);

//        StringBuilder increment = new StringBuilder("00011001202310131697166704700H3W6XY21   0001ZJ231011000000016225000000000002                6225000000000011                6227004590301765276             01111                                                                             null                                                                                22.00           临时性费用                                                                                                                      2024013120240203奋斗路街道办事处    奋斗路街道办事处    奋斗路街道办事处    临时性费用                                                                                                                                                    ");
//
//
//        System.out.println(increment.length());

//        StringBuilder increment = new StringBuilder("11");
//        int length = increment.length();
//        while (length<8){
//            increment.insert(0, "0");
//            length++;
//        }
//        System.out.println(increment.toString());

//        int num = 1;
//        num++;
//        System.out.println(num);

//
//        String str = "6217 9826 1000 9253 974";
//        System.out.println(str.replace(" ",""));

//        for (int i = 0; i < 10; i++) {
//            try {
//                if(i % 2 != 0){
//                   throw new RuntimeException("" + i);
//                }else{
//                    System.out.println("正常:"+i);
//                }
//            } catch (Exception e) {
//                System.out.println("异常："+e.getMessage());
//            }
//        }
//        String str = "ddddddaddddd";
//        System.out.println(str.indexOf("c"));

//        AtomicInteger sum = new AtomicInteger();
//        sum.getAndIncrement();
//        sum.getAndIncrement();
//        sum.getAndIncrement();
//        System.out.println(sum.get());
    }



    public static double bearing(double lat1, double lon1, double lat2, double lon2){




        double longitude1 = lon1;
        double longitude2 = lon2;
        double latitude1 = Math.toRadians(lat1);
        double latitude2 = Math.toRadians(lat2);
        double longDiff = Math.toRadians(longitude2-longitude1);
        double y = Math.sin(longDiff)*Math.cos(latitude2);
        double x = Math.cos(latitude1)*Math.sin(latitude2)-Math.sin(latitude1)*Math.cos(latitude2)*Math.cos(longDiff);
        return (Math.toDegrees(Math.atan2(y, x))+360)%360;
    }
}
